package learn1;
//方法引用的学习--基础知识

//1.引用处需要函数式接口
//2.被引用的方法必须已经存在
//3.被引用的方法形参和返回值类型必须和抽象方法的形参和返回值类型一致
//4.被引用的方法必须能满足功能


import java.util.Arrays;
import java.util.Comparator;

public class test1 {
    //方法引用的学习
    public static void main(String[] args) {
        Integer[] arr = {1,2,3,4,5};

        //匿名内部类的写法
        Arrays.sort(arr,new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });

        //lambda表达式的写法，只有函数式接口才能使用lambda表达式
        Arrays.sort(arr,(o1,o2)-> o1-o2);

        //引用方法的写法
        Arrays.sort(arr, test1::sub);
    }

    public static int sub(int a,int b){
        System.out.println(a-b);
        return a-b;
    }

}
